package com.tbit.main.dao.core;

import com.tbit.main.pojo.MachineOccupy;
import org.apache.ibatis.annotations.Param;

import java.util.List;

/**
 * 车辆占用
 *
 * @author Leon
 * 2020年5月19日 下午1:37:19
 */
public interface MachineOccupyDao {

    /**
     * 添加
     *
     * @param machineOccupy
     */
    void insert(MachineOccupy machineOccupy);

    /**
     * 根据设备id查询
     *
     * @param machineId
     * @return
     */
    MachineOccupy getByMachineId(Integer machineId);

    /**
     * 根据区域id查询
     *
     * @param accountId
     * @return
     */
    List<MachineOccupy> getByAccountId(Integer accountId);

    /**
     * 根据分区id查询
     *
     * @param regionId
     * @return
     */
    List<MachineOccupy> getByRegionId(@Param("regionId") String regionId);

    /**
     * 查询所有
     *
     * @return
     */
    List<MachineOccupy> getAll();

    /**
     * 删除
     *
     * @param machineId
     */
    void del(Integer machineId);

    void batchDel(List<Integer> machineIds);

    /**
     * 删除已经激活占用
     */
    void delActive();

    /**
     * 根据运维人员id查询
     *
     * @param accountUserId
     * @return
     */
    Integer getByAccountUserId(Integer accountUserId);

    /**
     * 用户骑行，取消运维占用
     */
    void delBorrow();

    /**
     * 查询设备是否存在占用
     *
     * @param list
     * @return
     */
    List<Integer> getExist(@Param("list") List<Integer> list);

    /**
     * 查询占用人员
     *
     * @param list
     * @return
     */
    List<MachineOccupy> getAccountUserId(@Param("list") List<Integer> list);

    List<MachineOccupy> getByMachineIds(String machineIds);
}